1. Field of the Invention
The present invention relates to computer network architectures, and, more specifically, to software for managing computer and communications networks. More particularly, the present invention provides software, systems, and apparatus for managing software entities and hardware over a computer network. The present invention has applications in the areas of computer science, computer network management, and computer software.
2. The Related Art
The demands on computer network managers have grown exponentially as the size and extensiveness of computer networks has grown over the past decade. Starting from the relatively simple task of maintaining communication among a relatively small number of mainframe computers, network managers must now coordinate operations among thousands of computers, printers, servers, and other networked devices. With the advent of the Java.RTM. and Jini.TM. programming languages, even household devices will soon become linked over computer networks running on household "intranets" that in turn are linked to the worldwide Internet. Thus, there appears to be no end in sight to the increasing burden on network managers.
To control and coordinate the software associated with the myriad of networked computers and other devices, network managers employ software designed to track, establish communications with, and control various software entities or processes that exist independently or represent the networked devices. Entities that represent networked devices are also referred to herein as "agents". The software used by the network manager interacts with various "platform-level" software services to enable the network manager to locate and interact with the various entities running on the network. Typically all communications between the network manager and the entities running on the network, as well as communications between entities, are managed by a central service.
The entities on the network can communicate among each other and the network manager by sending and receiving messages. Messages can be requests, responses, or events. Events may be alarm states (e.g., a warning of a communications failure or an error state) or some other public notification of the change of state in the entity. Various entities on the network "subscribe" to events generated by other entities so that co-operative relationships among entities can be maintained. Given the number and variety of events that can be generated, the volume of events being processed by the network management software can be great for large computer networks even when few or no error messages are being generated. This volume can slow system performance dramatically. Also, many systems rely on the same central software service to process both communications connection and events. This reliance on a single service to process such high volumes of data creates a risk of catastrophic network failure if the central software service fails. Such risks and decreased performance are not acceptable for large-scale networks that must be available twenty-four hours a day, seven days a week. Also, the event handing system should be scalable to allow efficient upgrades to computer network capacity.
Therefore, it would be beneficial to provide an event-handling system for a computer network management architecture that can process large numbers of events and continue to operate even if a central piece of the network management software fails. It would also be beneficial to have event-handling software that can be scaled efficiently as new devices and entities are added to the computer network. The present invention meets these and other needs.